Настройка кластера
Для примера рассмотрим схему, состоящую из 2-х серверов reports.server1
(основной) и reports.server1
(резервный).
Действия выполняемые на хосте reports.server1
:
- Открыть файл
technodoc.settings.ini
на хостеreports.server1
. - В секции
[Cluster]
указать настройкеPriority
значение равное1
, что сделает данный сервер основным, так как это будет максимальный приоритет среди серверов в данной конфигурации (можно указать любое число, которое будет больше чем на резервном сервере). - В секции
[Cluster]
задать для настройкиServersAddresses:0
значение равноеhttp://reports.server2
. Данная настройка задает адрес второго сервера для его опроса и определения состояния сервера. - Для сервера в режиме резервного сервера есть 2 варианта поведения, которые настрагиваются с помощью опции
RequestHandleType
:Forbid
- все запросы на изменение данных к резервным сервера м отклоняютсяRedirectToPrimary
- все отличные от GET запросы к резервным серверам перенаправляются на основной сервер Выберем для примера вариант по умолчаниюForbid
.
- В результате настройки в секции
[Cluster]
на хостеreports.server1
будут выглядеть следующим образом:
[Cluster]
Priority = 1 # Приоритет текущего сервера. Сервер с наивысшим приоритетом является основным
ServersAddresses:0 = http://reports.server2 # Адреса серверов в кластере в формате [http|https]://[IP|доменное имя]:[порт]
RequestHandleType = Forbid # Тип обработки запросов
При переходе сервера в режим резервного сервера необходимо отключить задачи, которые могут изменять данные для избегания конфликтов, для этого:
- Открыть файл
technodoc.settings.ini
на хостеreports.server1
. - Отключить задачи для режима резервного сервера: UploadReportValuesJob, ProcessReportsCreationRulesJob, ProcessReportsRulesJob, CalculateOperationTimeJob, SendMailsJob и DeleteMailsJob. Для этого необходимо добавить в конфигурацию для каждой задачи секцию конфигурирования с префиксом
Standby
и указать значение настройкиIsEnabled
равнымFalse
:
# Список допустимых названий задач:
[Standby:Reports:Jobs:UploadReportValuesJob] # Задача по загрузке значений отчетов
IsEnabled = False # Включена ли задача
[Standby:Reports:Jobs:ProcessReportsCreationRulesJob] # Задача по созданию отчетов
IsEnabled = False # Включена ли задача
[Standby:Reports:Jobs:ProcessReportsRulesJob] # Задача по обработке правил отчетов
IsEnabled = False # Включена ли задача
[Standby:OperationTime:Jobs:CalculateOperationTimeJob] # Задача по расчету наработки
IsEnabled = False # Включена ли задача
[Standby:Mail:Jobs:SendMailsJob] # Задача по отправке почты
IsEnabled = False # Включена ли задача
[Standby:Mail:Jobs:DeleteMailsJob] # Задача по удалению устаревших писем
IsEnabled = False # Включена ли задача
Действия выполняемые на хосте reports.server2
:
- Открыть файл
technodoc.settings.ini
на хостеreports.server2
. - В секции
[Cluster]
указать настройкеPriority
значение равное0
, что сделает данный сервер резервным, так как это будет минимальный приоритет среди серверов в данной конфигурации (можно указать любое число, которое будет меньше чем на основном сервере). - В секции
[Cluster]
задать для настройкиServersAddresses:0
значение равноеhttp://reports.server1
. Данная настройка задает адрес второго сервера для его опроса и определения состояния сервера. - Для сервера в режиме резервного сервера есть 2 варианта поведения, которые настрагиваются с помощью опции
RequestHandleType
:Forbid
- все запросы на из менение данных к резервным серверам отклоняютсяRedirectToPrimary
- все отличные от GET запросы к резервным серверам перенаправляются на основной сервер Выберем для примера вариант по умолчаниюForbid
.
- В результате настройки в секции
[Cluster]
на хостеreports.server2
будут выглядеть следующим образом:
[Cluster]
Priority = 0 # Приоритет текущего сервера. Сервер с наивысшим приоритетом является основным
ServersAddresses:0 = http://reports.server1 # Адреса серверов в кластере в формате [http|https]://[IP|доменное имя]:[порт]
RequestHandleType = Forbid # Тип обработки запросов
Для режима резервного сервера необходимо отключить задачи, которые могут изменять данные для избегания конфликтов, для этого:
- Открыть файл
technodoc.settings.ini
на хосте reports.server2. - Отключить задачи для режима резервного сервера: UploadReportValuesJob, ProcessReportsCreationRulesJob, ProcessReportsRulesJob, CalculateOperationTimeJob, SendMailsJob и DeleteMailsJob. Для этого необходимо добавить для каждой задачи секции конфигурирования с префиксом Standby и указать значение настройки
IsEnabled
равнымFalse
:
# Список допустимых названий задач:
[Standby:Reports:Jobs:UploadReportValuesJob] # Задача по загрузке значений отчетов
IsEnabled = False # Включена ли задача
[Standby:Reports:Jobs:ProcessReportsCreationRulesJob] # Задача по созданию отчетов
IsEnabled = False # Включена ли задача
[Standby:Reports:Jobs:ProcessReportsRulesJob] # Задача по обработке правил отчетов
IsEnabled = False # Включена ли задача
[Standby:OperationTime:Jobs:CalculateOperationTimeJob] # Задача по расчету наработки
IsEnabled = False # Включена ли задача
[Standby:Mail:Jobs:SendMailsJob] # Задача по отправке почты
IsEnabled = False # Включена ли задача
[Standby:Mail:Jobs:DeleteMailsJob] # Задача по удалению устаревших писем
IsEnabled = False # Включена ли задача
После всех манипуляций необходимо перезагрузить ТехноДок.